package cn.com.yiqi.wsc.service.customer;

import cn.com.yiqi.wsc.Ro.CustomerRo;
import cn.com.yiqi.wsc.common.Result;
import cn.com.yiqi.wsc.dao.balance.criteria.BalanceCriteria;
import cn.com.yiqi.wsc.dao.customer.criteria.CustomerCriteria;
import cn.com.yiqi.wsc.dao.customer.criteria.CustomerListCriteria;
import cn.com.yiqi.wsc.dao.order.criteria.OrderRecordCriteria;
import cn.com.yiqi.wsc.dao.point.criteria.PointCriteria;
import cn.com.yiqi.wsc.dao.point.entity.PointRecordEntity;
import cn.com.yiqi.wsc.entity.customer.Customer;

/**
 * @author 杨贵森
 * @ClassName:PortalCutomerService
 * @Title: PortalCutomerService
 * @Description: TODO
 * @date 2017/3/17
 */
public interface PortalCutomerService {

    Result<Customer> isExist(Integer id);

    Customer selectById(Integer id);

    Result findCustomerAndHigherCustomer(Integer userId);

    Result findCustomerInfo(Integer userId);

    Result findCustomerList(CustomerListCriteria customerListCriteria);

    Result findCustomerAddress(CustomerCriteria customerCriteria);

    Result findCustomerMentions(CustomerCriteria customerCriteria);

    Result findCustomerPointDetail(PointCriteria pointCriteria);

    Result findCustomerBalanceDetail(BalanceCriteria balanceCriteria);

    Result findCustomerBalanceFetchDetail(BalanceCriteria balanceCriteria);

    Result findCustomerSignedDetail(CustomerCriteria customerCriteria);

    Result findCustomerOrderDetail(OrderRecordCriteria orderRecordCriteria);

    Result findCustomerFavorDetail(CustomerCriteria customerCriteria);

    Result findCustomerCartDetail(CustomerCriteria customerCriteria);

    Result findCustomerLotteryDetail(CustomerCriteria customerCriteria);

    Result updateCustomerStatus(CustomerCriteria  customerCriteria);

    Result deleteCustomer(CustomerCriteria  customerCriteria);

    Result findCustomerDistributionList(CustomerListCriteria customerListCriteria);

    Result insertPresentPoint(PointRecordEntity pointRecordEntity);

    Result updateCustomerParam(CustomerRo customerRo);
}
